package com.sky.service;

import com.sky.bo.EditPassWordBo;
import com.sky.bo.EmployeeAddBo;
import com.sky.bo.EmployeeBo;
import com.sky.bo.EmployeeEditBo;
import com.sky.dto.EmployeeLoginDTO;
import com.sky.entity.Employee;
import com.sky.result.PageResult;
import com.sky.result.Result;

import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;

public interface EmployeeService {

    /**
     * 员工登录
     * @param employeeLoginDTO
     * @return
     */
    Employee login(EmployeeLoginDTO employeeLoginDTO);

    /**
     * 员工分页
     * @param employeeBo
     * @return
     */
    PageResult page(EmployeeBo employeeBo);

    /**
     * 添加员工
     * @param employeeAddBo
     * @return
     */
    Boolean add(@Valid EmployeeAddBo employeeAddBo, HttpServletRequest httpServletRequest);

    /**
     * 根据id获取详细信息
     * @param id
     * @return
     */
    Employee getEmployeeById(Long id);

    /**
     * 编辑员工信息
     * @param employeeEditBo
     * @param request
     */
    void editEmployee(@Valid EmployeeEditBo employeeEditBo,HttpServletRequest request);

    /**
     * 修改账号状态
     * @param status
     * @param id
     * @param request
     */
    void updateStatus(Integer status, Long id, HttpServletRequest request);

    /**
     * 修改密码
     * @param editPassWordBo
     * @param request
     */
    void editPassword(@Valid EditPassWordBo editPassWordBo, HttpServletRequest request);
}
